﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAO;
using Entidad;
using System.Data;

public partial class InformeEjemplaresVendidos : System.Web.UI.Page
{
    InformeVentasInterface informeDAO;
    static DataView dvInforme;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {

            rvFechaDesde.MaximumValue = DateTime.Now.Date.ToString("dd/MM/yyyy");
            rvFechaHasta.MaximumValue = DateTime.Now.Date.ToString("dd/MM/yyyy");
            rvFechaHasta.MinimumValue = txtFechaDesde.Text;
           
            CargarGrillaEjemplares();
        }
    }

    protected void CargarGrillaEjemplares()
    {
        informeDAO = new InformeVentasQueryDAO();
        dvInforme = informeDAO.ObtenerInforme();
        grvVentas.DataSource = dvInforme;
        grvVentas.DataBind();

    }
   

  public void btn_buscar_Click(object sender, EventArgs e)
    {
        informeDAO = new InformeVentasQueryDAO();

    
        if (!String.IsNullOrEmpty(txtFechaDesde.Text))
        {
            if (String.IsNullOrEmpty(txtFechaHasta.Text))
            {
                txtFechaHasta.Text = DateTime.Now.ToShortDateString();
            }
        }
        //if (!String.IsNullOrEmpty(txtFechaHasta.Text) && String.IsNullOrEmpty(txtFechaDesde.Text))
        //{
        //    txtFechaDesde.Text = informeDAO.OtenerFechaMasAntigua();
        //}
        if (IsValid)
        {
            String filtro = "";
         
            //Filtro Monto
            if (!string.IsNullOrEmpty(txtMontoDesde.Text) && !string.IsNullOrEmpty(txtMontoHasta.Text))
            {
                filtro += " DetalleFactura.Precio >= '" + txtMontoDesde.Text + "' AND DetalleFactura.Precio <= '" + txtMontoHasta.Text + "'";
                if (!string.IsNullOrEmpty(txtFechaDesde.Text) || !string.IsNullOrEmpty(txtLibro.Text))
                {
                    filtro += " AND ";
                }
            }
            //Filtro Fecha
            if (!string.IsNullOrEmpty(txtFechaDesde.Text))
            {
                filtro += " Factura.fecha >= '" + txtFechaDesde.Text + "' AND Factura.fecha <= '" + txtFechaHasta.Text + "'";
                if (!string.IsNullOrEmpty(txtLibro.Text))
                {
                    filtro += " AND ";
                }
            }
            //Filtro titulo
            if (!string.IsNullOrEmpty(txtLibro.Text))
            {
                filtro += " Titulo LIKE '%" + txtLibro.Text + "%'";
            }
            if (string.IsNullOrEmpty(filtro))
            {
                dvInforme = informeDAO.ObtenerInforme();
            }
            else
            {
                dvInforme = informeDAO.ObtenerInforme(" AND " + filtro);
            }
            if (dvInforme.Count == 0)
            {
            
                result.Visible = true;
            }
            else
            {
                result.Visible = false;
                grvVentas.DataSource = dvInforme;
            }
            grvVentas.DataBind();
        }

    }
    protected void grvVentas_Sorting(object sender, GridViewSortEventArgs e)
    {
        dvInforme.Sort = e.SortExpression;
        grvVentas.DataSource = dvInforme;
        grvVentas.DataBind();
    }
    protected void grvVentas_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView gv = (GridView)sender;
        gv.PageIndex = e.NewPageIndex;
        grvVentas.DataSource = dvInforme;
        grvVentas.DataBind();
    }

}